﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="CalibreVBDataSet" targetNamespace="http://tempuri.org/CalibreVBDataSet.xsd" xmlns:mstns="http://tempuri.org/CalibreVBDataSet.xsd" xmlns="http://tempuri.org/CalibreVBDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:annotation>
    <xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
      <DataSource DefaultConnectionIndex="0" FunctionsComponentName="GetTitlebyBook" GeneratorFunctionsComponentClassName="GetTitlebyBook" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" UserFunctionsComponentName="GetTitlebyBook" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
        <Connections>
          <Connection AppSettingsObjectName="Web.config" AppSettingsPropertyName="CalibreDB" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="CalibreDB (Web.config)" ParameterPrefix="@" PropertyReference="AppConfig.System.Configuration.ConfigurationManager.0.ConnectionStrings.CalibreDB.ConnectionString" Provider="System.Data.SQLite" />
        </Connections>
        <Tables>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="booksTableAdapter" GeneratorDataComponentClassName="booksTableAdapter" Name="books" UserDataComponentName="booksTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books] ([title], [sort], [timestamp], [pubdate], [series_index], [author_sort], [isbn], [lccn], [path], [flags], [uuid], [has_cover], [last_modified]) VALUES (@title, @sort, @timestamp, @pubdate, @series_index, @author_sort, @isbn, @lccn, @path, @flags, @uuid, @has_cover, @last_modified)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@title" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@timestamp" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="timestamp" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@pubdate" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="pubdate" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@series_index" Precision="0" ProviderType="Double" Scale="0" Size="0" SourceColumn="series_index" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@author_sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="author_sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@isbn" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="isbn" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@lccn" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="lccn" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@path" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="path" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@flags" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="flags" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@uuid" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="uuid" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@has_cover" Precision="0" ProviderType="Boolean" Scale="0" Size="0" SourceColumn="has_cover" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@last_modified" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="last_modified" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [title], [sort], [timestamp], [pubdate], [series_index], [author_sort], [isbn], [lccn], [path], [flags], [uuid], [has_cover], [last_modified] FROM [books]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books] SET [title] = @title, [sort] = @sort, [timestamp] = @timestamp, [pubdate] = @pubdate, [series_index] = @series_index, [author_sort] = @author_sort, [isbn] = @isbn, [lccn] = @lccn, [path] = @path, [flags] = @flags, [uuid] = @uuid, [has_cover] = @has_cover, [last_modified] = @last_modified WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@title" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@timestamp" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="timestamp" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@pubdate" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="pubdate" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@series_index" Precision="0" ProviderType="Double" Scale="0" Size="0" SourceColumn="series_index" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@author_sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="author_sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@isbn" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="isbn" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@lccn" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="lccn" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@path" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="path" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@flags" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="flags" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@uuid" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="uuid" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@has_cover" Precision="0" ProviderType="Boolean" Scale="0" Size="0" SourceColumn="has_cover" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@last_modified" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="last_modified" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="title" DataSetColumn="title" />
              <Mapping SourceColumn="sort" DataSetColumn="sort" />
              <Mapping SourceColumn="timestamp" DataSetColumn="timestamp" />
              <Mapping SourceColumn="pubdate" DataSetColumn="pubdate" />
              <Mapping SourceColumn="series_index" DataSetColumn="series_index" />
              <Mapping SourceColumn="author_sort" DataSetColumn="author_sort" />
              <Mapping SourceColumn="isbn" DataSetColumn="isbn" />
              <Mapping SourceColumn="lccn" DataSetColumn="lccn" />
              <Mapping SourceColumn="path" DataSetColumn="path" />
              <Mapping SourceColumn="flags" DataSetColumn="flags" />
              <Mapping SourceColumn="uuid" DataSetColumn="uuid" />
              <Mapping SourceColumn="has_cover" DataSetColumn="has_cover" />
              <Mapping SourceColumn="last_modified" DataSetColumn="last_modified" />
            </Mappings>
            <Sources>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillBy" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetDataBytitle" GeneratorSourceName="FillBy" GetMethodModifier="Public" GetMethodName="GetDataBytitle" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBytitle" UserSourceName="FillBy">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT [id], [title], [sort], [timestamp], [pubdate], [series_index], [author_sort], [isbn], [lccn], [path], [flags], [uuid], [has_cover], [last_modified] FROM [books] WHERE title LIKE 'a%'</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
              </DbSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillBy1" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetAgatha" GeneratorSourceName="FillBy1" GetMethodModifier="Public" GetMethodName="GetAgatha" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetAgatha" UserSourceName="FillBy1">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        books.id, books.title, books.sort, books.[timestamp], books.pubdate, books.series_index, books.author_sort, books.isbn, books.lccn, books.path, books.flags, 
                         books.uuid, books.has_cover, books.last_modified
FROM            books INNER JOIN
                         books_authors_link ON books.id = books_authors_link.book INNER JOIN
                         authors ON books_authors_link.author = authors.id
WHERE        (authors.name LIKE 'agatha%')</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
              </DbSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.authors" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillBy2" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetAuthorsByBook" GeneratorSourceName="FillBy2" GetMethodModifier="Public" GetMethodName="GetAuthorsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetAuthorsByBook" UserSourceName="FillBy2">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT       authors.name
FROM            books_authors_link INNER JOIN
                         books ON books_authors_link.book = books.id INNER JOIN
                         authors ON books_authors_link.author = authors.id
WHERE        (books_authors_link.book = @id)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="id" ColumnName="book" DataSourceName="main.books_authors_link" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </Sources>
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="books_authors_linkTableAdapter" GeneratorDataComponentClassName="books_authors_linkTableAdapter" Name="books_authors_link" UserDataComponentName="books_authors_linkTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books_authors_link" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books_authors_link] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books_authors_link] ([id], [book], [author]) VALUES (@id, @book, @author)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@author" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="author" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [author] FROM [books_authors_link]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books_authors_link] SET [id] = @id, [book] = @book, [author] = @author WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@author" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="author" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="author" DataSetColumn="author" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="books_languages_linkTableAdapter" GeneratorDataComponentClassName="books_languages_linkTableAdapter" Name="books_languages_link" UserDataComponentName="books_languages_linkTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books_languages_link" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books_languages_link] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books_languages_link] ([id], [book], [lang_code], [item_order]) VALUES (@id, @book, @lang_code, @item_order)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@lang_code" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="lang_code" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@item_order" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="item_order" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [lang_code], [item_order] FROM [books_languages_link]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books_languages_link] SET [id] = @id, [book] = @book, [lang_code] = @lang_code, [item_order] = @item_order WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@lang_code" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="lang_code" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@item_order" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="item_order" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="lang_code" DataSetColumn="lang_code" />
              <Mapping SourceColumn="item_order" DataSetColumn="item_order" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="books_publishers_linkTableAdapter" GeneratorDataComponentClassName="books_publishers_linkTableAdapter" Name="books_publishers_link" UserDataComponentName="books_publishers_linkTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books_publishers_link" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books_publishers_link] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books_publishers_link] ([id], [book], [publisher]) VALUES (@id, @book, @publisher)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@publisher" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="publisher" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [publisher] FROM [books_publishers_link]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books_publishers_link] SET [id] = @id, [book] = @book, [publisher] = @publisher WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@publisher" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="publisher" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="publisher" DataSetColumn="publisher" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="books_ratings_linkTableAdapter" GeneratorDataComponentClassName="books_ratings_linkTableAdapter" Name="books_ratings_link" UserDataComponentName="books_ratings_linkTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books_ratings_link" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books_ratings_link] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books_ratings_link] ([id], [book], [rating]) VALUES (@id, @book, @rating)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@rating" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="rating" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [rating] FROM [books_ratings_link]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books_ratings_link] SET [id] = @id, [book] = @book, [rating] = @rating WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@rating" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="rating" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="rating" DataSetColumn="rating" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="books_series_linkTableAdapter" GeneratorDataComponentClassName="books_series_linkTableAdapter" Name="books_series_link" UserDataComponentName="books_series_linkTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books_series_link" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books_series_link] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books_series_link] ([id], [book], [series]) VALUES (@id, @book, @series)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@series" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="series" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [series] FROM [books_series_link]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books_series_link] SET [id] = @id, [book] = @book, [series] = @series WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@series" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="series" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="series" DataSetColumn="series" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="books_tags_linkTableAdapter" GeneratorDataComponentClassName="books_tags_linkTableAdapter" Name="books_tags_link" UserDataComponentName="books_tags_linkTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books_tags_link" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[books_tags_link] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[books_tags_link] ([id], [book], [tag]) VALUES (@id, @book, @tag)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@tag" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="tag" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [tag] FROM [books_tags_link]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[books_tags_link] SET [id] = @id, [book] = @book, [tag] = @tag WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@tag" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="tag" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="tag" DataSetColumn="tag" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="identifiersTableAdapter" GeneratorDataComponentClassName="identifiersTableAdapter" Name="identifiers" UserDataComponentName="identifiersTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.identifiers" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[identifiers] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[identifiers] ([id], [book], [type], [val]) VALUES (@id, @book, @type, @val)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@type" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="type" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@val" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="val" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [book], [type], [val] FROM [identifiers]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[identifiers] SET [id] = @id, [book] = @book, [type] = @type, [val] = @val WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@book" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@type" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="type" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@val" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="val" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="book" DataSetColumn="book" />
              <Mapping SourceColumn="type" DataSetColumn="type" />
              <Mapping SourceColumn="val" DataSetColumn="val" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="languagesTableAdapter" GeneratorDataComponentClassName="languagesTableAdapter" Name="languages" UserDataComponentName="languagesTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.languages" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[languages] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[languages] ([id], [lang_code]) VALUES (@id, @lang_code)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@lang_code" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="lang_code" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [lang_code] FROM [languages]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[languages] SET [id] = @id, [lang_code] = @lang_code WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Object" Direction="Input" ParameterName="@lang_code" Precision="0" ProviderType="Object" Scale="0" Size="0" SourceColumn="lang_code" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="lang_code" DataSetColumn="lang_code" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="publishersTableAdapter" GeneratorDataComponentClassName="publishersTableAdapter" Name="publishers" UserDataComponentName="publishersTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.publishers" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[publishers] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[publishers] ([id], [name], [sort]) VALUES (@id, @name, @sort)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [name], [sort] FROM [publishers]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[publishers] SET [id] = @id, [name] = @name, [sort] = @sort WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
              <Mapping SourceColumn="sort" DataSetColumn="sort" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="ratingsTableAdapter" GeneratorDataComponentClassName="ratingsTableAdapter" Name="ratings" UserDataComponentName="ratingsTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.ratings" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[ratings] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[ratings] ([id], [rating]) VALUES (@id, @rating)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@rating" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="rating" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [rating] FROM [ratings]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[ratings] SET [id] = @id, [rating] = @rating WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@rating" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="rating" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="rating" DataSetColumn="rating" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="seriesTableAdapter" GeneratorDataComponentClassName="seriesTableAdapter" Name="series" UserDataComponentName="seriesTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.series" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[series] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[series] ([id], [name], [sort]) VALUES (@id, @name, @sort)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [name], [sort] FROM [series]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[series] SET [id] = @id, [name] = @name, [sort] = @sort WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@sort" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="sort" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
              <Mapping SourceColumn="sort" DataSetColumn="sort" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="tagsTableAdapter" GeneratorDataComponentClassName="tagsTableAdapter" Name="tags" UserDataComponentName="tagsTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.tags" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <DeleteCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>DELETE FROM [main].[sqlite_default_schema].[tags] WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </DeleteCommand>
                <InsertCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>INSERT INTO [main].[sqlite_default_schema].[tags] ([id], [name]) VALUES (@id, @name)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </InsertCommand>
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>SELECT [id], [name] FROM [tags]</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
                <UpdateCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="false">
                    <CommandText>UPDATE [main].[sqlite_default_schema].[tags] SET [id] = @id, [name] = @name WHERE (([id] = @Original_id))</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="String" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                      <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int64" Direction="Input" ParameterName="@Original_id" Precision="0" ProviderType="Int64" Scale="0" Size="0" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Original" />
                    </Parameters>
                  </DbCommand>
                </UpdateCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="authorsbybookTableAdapter" GeneratorDataComponentClassName="authorsbybookTableAdapter" Name="authorsbybook" UserDataComponentName="authorsbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.authors" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetAuthorsByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetAuthorsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetAuthorsByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT DISTINCT authors.id, authors.name
FROM            books_authors_link INNER JOIN
                         books ON books_authors_link.book = books.id INNER JOIN
                         authors ON books_authors_link.author = authors.id
WHERE        (books_authors_link.book = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="book" DataSourceName="main.books_authors_link" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="book" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="name" DataSetColumn="name" />
              <Mapping SourceColumn="id" DataSetColumn="id" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="commentsbybookTableAdapter" GeneratorDataComponentClassName="commentsbybookTableAdapter" Name="commentsbybook" UserDataComponentName="commentsbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetCommentsByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetCommentsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetCommentsByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        text
FROM            comments
WHERE        (Book = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="" DataSourceName="" DataTypeServer="unknown" DbType="Object" Direction="Input" ParameterName="@bookid" Precision="0" Scale="0" Size="1024" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="text" DataSetColumn="text" />
            </Mappings>
            <Sources>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" GenerateShortCommands="true" GeneratorSourceName="ScalarGetCommentsByBook" Modifier="Public" Name="ScalarGetCommentsByBook" QueryType="Scalar" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="ScalarGetCommentsByBook">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        text
FROM            comments
WHERE        (Book = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="" DataSourceName="" DataTypeServer="unknown" DbType="Object" Direction="Input" ParameterName="@bookid" Precision="0" Scale="0" Size="1024" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </Sources>
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="seriesbybookTableAdapter" GeneratorDataComponentClassName="seriesbybookTableAdapter" Name="seriesbybook" UserDataComponentName="seriesbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.series" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetSeriesByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetSeriesByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetSeriesByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        series.id, series.name
FROM            books INNER JOIN
                         books_series_link ON books.id = books_series_link.book INNER JOIN
                         series ON books_series_link.series = series.id
WHERE        (books.id = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
            </Mappings>
            <Sources>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.series" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="ScalarGetSeriesIdByBook" Modifier="Public" Name="ScalarGetSeriesIdByBook" QueryType="Scalar" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="ScalarGetSeriesIdByBook">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        series.id
FROM            books INNER JOIN
                         books_series_link ON books.id = books_series_link.book INNER JOIN
                         series ON books_series_link.series = series.id
WHERE        (books.id = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.series" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="ScalarGetSeriesNameByBook" Modifier="Public" Name="ScalarGetSeriesNameByBook" QueryType="Scalar" ScalarCallRetval="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy1" UserSourceName="ScalarGetSeriesNameByBook">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        series.name
FROM            books INNER JOIN
                         books_series_link ON books.id = books_series_link.book INNER JOIN
                         series ON books_series_link.series = series.id
WHERE        (books.id = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </Sources>
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="tagsbybookTableAdapter" GeneratorDataComponentClassName="tagsbybookTableAdapter" Name="tagsbybook" UserDataComponentName="tagsbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetTagsByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetTagsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetTagsByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        tags.id, tags.name
FROM            books INNER JOIN
                         books_tags_link ON books.id = books_tags_link.book INNER JOIN
                         tags ON books_tags_link.tag = tags.id
WHERE        (books.id = @bookid) LIMIT 10</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="ratingsbybookTableAdapter" GeneratorDataComponentClassName="ratingsbybookTableAdapter" Name="ratingsbybook" UserDataComponentName="ratingsbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.ratings" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetRatingsByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetRatingsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetRatingsByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        ratings.rating
FROM            books INNER JOIN
                         books_ratings_link ON books.id = books_ratings_link.book INNER JOIN
                         ratings ON books_ratings_link.rating = ratings.id
WHERE        (books.id = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="rating" DataSetColumn="rating" />
            </Mappings>
            <Sources>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.ratings" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="ScalarGetRatingsByBook" Modifier="Public" Name="ScalarGetRatingsByBook" QueryType="Scalar" ScalarCallRetval="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="ScalarGetRatingsByBook">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        ratings.rating
FROM            books INNER JOIN
                         books_ratings_link ON books.id = books_ratings_link.book INNER JOIN
                         ratings ON books_ratings_link.rating = ratings.id
WHERE        (books.id = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </Sources>
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="formatsbybookTableAdapter" GeneratorDataComponentClassName="formatsbybookTableAdapter" Name="formatsbybook" UserDataComponentName="formatsbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetFormatsByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetFormatsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetFormatsByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        format, name
FROM            data
WHERE        (book = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="" DataSourceName="" DataTypeServer="unknown" DbType="Object" Direction="Input" ParameterName="@bookid" Precision="0" Scale="0" Size="1024" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="format" DataSetColumn="format" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="CountBooksByTagidTableAdapter" GeneratorDataComponentClassName="CountBooksByTagidTableAdapter" Name="CountBooksByTagid" UserDataComponentName="CountBooksByTagidTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="CountBooksByTagid" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="CountBooksByTagid" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="CountBooksByTagid" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        COUNT(books_tags_link.id) AS Expr1
FROM            books_tags_link INNER JOIN
                         books ON books_tags_link.book = books.id INNER JOIN
                         tags ON books_tags_link.tag = tags.id
WHERE        (tags.id = @tagid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="tagid" ColumnName="id" DataSourceName="main.tags" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@tagid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="Expr1" DataSetColumn="Expr1" />
            </Mappings>
            <Sources>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" GenerateShortCommands="true" GeneratorSourceName="ScalarCountBooksByTagName" Modifier="Public" Name="ScalarCountBooksByTagName" QueryType="Scalar" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="ScalarCountBooksByTagName">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        COUNT(books_tags_link.id) AS Expr1
FROM            books_tags_link INNER JOIN
                         books ON books_tags_link.book = books.id INNER JOIN
                         tags ON books_tags_link.tag = tags.id
WHERE        (tags.name = @tagname)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="tagname" ColumnName="name" DataSourceName="main.tags" DataTypeServer="text" DbType="String" Direction="Input" ParameterName="@tagname" Precision="0" ProviderType="String" Scale="0" Size="2147483647" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </Sources>
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="GetTagNameByIdTableAdapter" GeneratorDataComponentClassName="GetTagNameByIdTableAdapter" Name="GetTagNameById" UserDataComponentName="GetTagNameByIdTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.tags" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetTagNameById" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetTagNameById" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetTagNameById" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        name
FROM            tags
WHERE        (id = @tagid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="tagid" ColumnName="id" DataSourceName="main.tags" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@tagid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="name" DataSetColumn="name" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="GetTagIdByTagNameTableAdapter" GeneratorDataComponentClassName="GetTagIdByTagNameTableAdapter" Name="GetTagIdByTagName" UserDataComponentName="GetTagIdByTagNameTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.tags" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetTagIdByTagName" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetTagIdByTagName" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetTagIdByTagName" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        id
FROM            tags
WHERE        (name = @tagname)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="tagname" ColumnName="name" DataSourceName="main.tags" DataTypeServer="text" DbType="String" Direction="Input" ParameterName="@tagname" Precision="0" ProviderType="String" Scale="0" Size="2147483647" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="GetBooksByLangCode" GeneratorDataComponentClassName="GetBooksByLangCode" Name="GetBooksByLangCode" UserDataComponentName="GetBooksByLangCode">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetBooksByLangCode" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetBooksByLangCode" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetBooksByLangCode" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        books.id, books.title
FROM            books INNER JOIN
                         books_languages_link ON books.id = books_languages_link.book INNER JOIN
                         languages ON books_languages_link.lang_code = languages.id
WHERE        (languages.lang_code = @langcode)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="langcode" ColumnName="" DataSourceName="" DataTypeServer="unknown" DbType="Object" Direction="Input" ParameterName="@langcode" Precision="0" Scale="0" Size="1024" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="title" DataSetColumn="title" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="CountBooksByRating" GeneratorDataComponentClassName="CountBooksByRating" Name="CountBooksByRating" UserDataComponentName="CountBooksByRating">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="CountBooksByRating" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="CountBooksByRating" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="CountBooksByRating" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        COUNT(books.id) AS Expr1
FROM            books INNER JOIN
                         books_ratings_link ON books_ratings_link.book = books.id INNER JOIN
                         ratings ON books_ratings_link.rating = ratings.rating
WHERE        (ratings.rating = @rat)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="true" AutogeneratedName="rat" ColumnName="rating" DataSourceName="main.ratings" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@rat" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="rating" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="Expr1" DataSetColumn="Expr1" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="tags1TableAdapter" GeneratorDataComponentClassName="tags1TableAdapter" Name="tags1" UserDataComponentName="tags1TableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.tags" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        id
FROM            tags
WHERE        (name = @tagname)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="tagname" ColumnName="name" DataSourceName="main.tags" DataTypeServer="text" DbType="String" Direction="Input" ParameterName="@tagname" Precision="0" ProviderType="String" Scale="0" Size="2147483647" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="DetailsTableAdapter" GeneratorDataComponentClassName="DetailsTableAdapter" Name="Details" UserDataComponentName="DetailsTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetDetails" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetDetails" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetDetails" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT DISTINCT 
                         books.id, books.title, books.author_sort, books.has_cover, authors.name, books.pubdate, data.format, identifiers.type, identifiers.val, languages.lang_code, 
                         books.last_modified, books.[timestamp], publishers.name AS publisher
FROM            books INNER JOIN
                         books_authors_link ON books.id = books_authors_link.book INNER JOIN
                         authors ON books_authors_link.author = authors.id INNER JOIN
                         data ON books.id = data.book INNER JOIN
                         identifiers ON books.id = identifiers.book INNER JOIN
                         books_languages_link ON books.id = books_languages_link.book INNER JOIN
                         languages ON books_languages_link.lang_code = languages.id INNER JOIN
                         books_publishers_link ON books.id = books_publishers_link.book INNER JOIN
                         publishers ON books_publishers_link.publisher = publishers.id
WHERE        (books.id = @0)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="0" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@0" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="title" DataSetColumn="title" />
              <Mapping SourceColumn="author_sort" DataSetColumn="author_sort" />
              <Mapping SourceColumn="has_cover" DataSetColumn="has_cover" />
              <Mapping SourceColumn="name" DataSetColumn="name" />
              <Mapping SourceColumn="pubdate" DataSetColumn="pubdate" />
              <Mapping SourceColumn="format" DataSetColumn="format" />
              <Mapping SourceColumn="type" DataSetColumn="type" />
              <Mapping SourceColumn="val" DataSetColumn="val" />
              <Mapping SourceColumn="lang_code" DataSetColumn="lang_code" />
              <Mapping SourceColumn="last_modified" DataSetColumn="last_modified" />
              <Mapping SourceColumn="timestamp" DataSetColumn="timestamp" />
              <Mapping SourceColumn="publisher" DataSetColumn="publisher" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="Details1TableAdapter" GeneratorDataComponentClassName="Details1TableAdapter" Name="Details1" UserDataComponentName="Details1TableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetDetails" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetDetails" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetDetails" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        books.id, books.title, books.author_sort, books.[timestamp] AS TitleDate, books.pubdate, books.last_modified, books.series_index, books.has_cover, 
                         languages.lang_code, publishers.name AS publisher, series.name AS series, ratings.rating / 2 AS rating, comments.text AS comments
FROM            books INNER JOIN
                         books_languages_link ON books.id = books_languages_link.book INNER JOIN
                         languages ON books_languages_link.lang_code = languages.id INNER JOIN
                         books_publishers_link ON books.id = books_publishers_link.book INNER JOIN
                         publishers ON books_publishers_link.publisher = publishers.id INNER JOIN
                         books_series_link ON books.id = books_series_link.book INNER JOIN
                         series ON books_series_link.series = series.id INNER JOIN
                         books_ratings_link ON books.id = books_ratings_link.book INNER JOIN
                         ratings ON books_ratings_link.rating = ratings.id INNER JOIN
                         comments ON books.id = comments.book
WHERE        (books.id = @0)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="0" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@0" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="title" DataSetColumn="title" />
              <Mapping SourceColumn="author_sort" DataSetColumn="author_sort" />
              <Mapping SourceColumn="has_cover" DataSetColumn="has_cover" />
              <Mapping SourceColumn="pubdate" DataSetColumn="pubdate" />
              <Mapping SourceColumn="lang_code" DataSetColumn="lang_code" />
              <Mapping SourceColumn="last_modified" DataSetColumn="last_modified" />
              <Mapping SourceColumn="publisher" DataSetColumn="publisher" />
              <Mapping SourceColumn="TitleDate" DataSetColumn="TitleDate" />
              <Mapping SourceColumn="series_index" DataSetColumn="series_index" />
              <Mapping SourceColumn="series" DataSetColumn="series" />
              <Mapping SourceColumn="rating" DataSetColumn="rating" />
              <Mapping SourceColumn="comments" DataSetColumn="comments" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="DataTable1TableAdapter" GeneratorDataComponentClassName="DataTable1TableAdapter" Name="DataTable1" UserDataComponentName="DataTable1TableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT        books.id, books.title, books.author_sort, books.[timestamp] AS titledate, books.pubdate, books.last_modified, books.series_index, books.has_cover, 
                         languages.lang_code, publishers.name AS publisher, COALESCE(series.name, 'AT2015') AS series, ratings.rating / 2 AS rating, 
                         comments.text AS comments
FROM            books INNER JOIN
                         books_languages_link ON books.id = books_languages_link.book INNER JOIN
                         languages ON books_languages_link.lang_code = languages.id INNER JOIN
                         books_publishers_link ON books.id = books_publishers_link.book INNER JOIN
                         publishers ON books_publishers_link.publisher = publishers.id LEFT OUTER JOIN
                         books_series_link ON books.id = books_series_link.book LEFT OUTER JOIN
                         series ON books_series_link.series = series.id INNER JOIN
                         books_ratings_link ON books.id = books_ratings_link.book INNER JOIN
                         ratings ON books_ratings_link.rating = ratings.id INNER JOIN
                         comments ON books.id = comments.book
WHERE        (books.id = 7891)</CommandText>
                    <Parameters />
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="id" DataSetColumn="id" />
              <Mapping SourceColumn="title" DataSetColumn="title" />
              <Mapping SourceColumn="author_sort" DataSetColumn="author_sort" />
              <Mapping SourceColumn="titledate" DataSetColumn="titledate" />
              <Mapping SourceColumn="pubdate" DataSetColumn="pubdate" />
              <Mapping SourceColumn="last_modified" DataSetColumn="last_modified" />
              <Mapping SourceColumn="series_index" DataSetColumn="series_index" />
              <Mapping SourceColumn="has_cover" DataSetColumn="has_cover" />
              <Mapping SourceColumn="lang_code" DataSetColumn="lang_code" />
              <Mapping SourceColumn="publisher" DataSetColumn="publisher" />
              <Mapping SourceColumn="rating" DataSetColumn="rating" />
              <Mapping SourceColumn="comments" DataSetColumn="comments" />
              <Mapping SourceColumn="series" DataSetColumn="series" />
            </Mappings>
            <Sources />
          </TableAdapter>
          <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="idsbybookTableAdapter" GeneratorDataComponentClassName="idsbybookTableAdapter" Name="idsbybook" UserDataComponentName="idsbybookTableAdapter">
            <MainSource>
              <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetIdsByBook" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetIdsByBook" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetIdsByBook" UserSourceName="Fill">
                <SelectCommand>
                  <DbCommand CommandType="Text" ModifiedByUser="true">
                    <CommandText>SELECT DISTINCT type, val
FROM            books INNER JOIN
                         identifiers ON books.id = identifiers.book
WHERE        (books.id = @bookid)</CommandText>
                    <Parameters>
                      <Parameter AllowDbNull="false" AutogeneratedName="bookid" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@bookid" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                    </Parameters>
                  </DbCommand>
                </SelectCommand>
              </DbSource>
            </MainSource>
            <Mappings>
              <Mapping SourceColumn="type" DataSetColumn="type" />
              <Mapping SourceColumn="val" DataSetColumn="val" />
            </Mappings>
            <Sources />
          </TableAdapter>
        </Tables>
        <Sources>
          <DbSource ConnectionRef="CalibreDB (Web.config)" DbObjectName="main.books" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="ScalarGetTitlebyBook" MethodsParameterType="CLR" Modifier="Public" Name="ScalarGetTitlebyBook" QueryType="Scalar" ScalarCallRetval="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="ScalarGetTitlebyBook">
            <SelectCommand>
              <DbCommand CommandType="Text" ModifiedByUser="true">
                <CommandText>SELECT        title
FROM            books
WHERE        (id = @id)</CommandText>
                <Parameters>
                  <Parameter AllowDbNull="false" AutogeneratedName="id" ColumnName="id" DataSourceName="main.books" DataTypeServer="integer(8)" DbType="Int64" Direction="Input" ParameterName="@id" Precision="0" ProviderType="Int64" Scale="0" Size="8" SourceColumn="id" SourceColumnNullMapping="false" SourceVersion="Current" />
                </Parameters>
              </DbCommand>
            </SelectCommand>
          </DbSource>
        </Sources>
      </DataSource>
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="CalibreVBDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_DataSetName="CalibreVBDataSet" msprop:Generator_UserDSName="CalibreVBDataSet">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="books" msprop:Generator_TableClassName="booksDataTable" msprop:Generator_TableVarName="tablebooks" msprop:Generator_TablePropName="books" msprop:Generator_RowDeletingName="booksRowDeleting" msprop:Generator_RowChangingName="booksRowChanging" msprop:Generator_RowEvHandlerName="booksRowChangeEventHandler" msprop:Generator_RowDeletedName="booksRowDeleted" msprop:Generator_UserTableName="books" msprop:Generator_RowChangedName="booksRowChanged" msprop:Generator_RowEvArgName="booksRowChangeEvent" msprop:Generator_RowClassName="booksRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="sort" msprop:Generator_ColumnVarNameInTable="columnsort" msprop:Generator_ColumnPropNameInRow="sort" msprop:Generator_ColumnPropNameInTable="sortColumn" msprop:Generator_UserColumnName="sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="timestamp" msprop:Generator_ColumnVarNameInTable="columntimestamp" msprop:Generator_ColumnPropNameInRow="timestamp" msprop:Generator_ColumnPropNameInTable="timestampColumn" msprop:Generator_UserColumnName="timestamp" type="xs:dateTime" minOccurs="0" />
              <xs:element name="pubdate" msprop:Generator_ColumnVarNameInTable="columnpubdate" msprop:Generator_ColumnPropNameInRow="pubdate" msprop:Generator_ColumnPropNameInTable="pubdateColumn" msprop:Generator_UserColumnName="pubdate" type="xs:dateTime" minOccurs="0" />
              <xs:element name="series_index" msprop:Generator_ColumnVarNameInTable="columnseries_index" msprop:Generator_ColumnPropNameInRow="series_index" msprop:Generator_ColumnPropNameInTable="series_indexColumn" msprop:Generator_UserColumnName="series_index" type="xs:double" />
              <xs:element name="author_sort" msprop:Generator_ColumnVarNameInTable="columnauthor_sort" msprop:Generator_ColumnPropNameInRow="author_sort" msprop:Generator_ColumnPropNameInTable="author_sortColumn" msprop:Generator_UserColumnName="author_sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="isbn" msprop:Generator_ColumnVarNameInTable="columnisbn" msprop:Generator_ColumnPropNameInRow="isbn" msprop:Generator_ColumnPropNameInTable="isbnColumn" msprop:Generator_UserColumnName="isbn" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="lccn" msprop:Generator_ColumnVarNameInTable="columnlccn" msprop:Generator_ColumnPropNameInRow="lccn" msprop:Generator_ColumnPropNameInTable="lccnColumn" msprop:Generator_UserColumnName="lccn" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="path" msprop:Generator_ColumnVarNameInTable="columnpath" msprop:Generator_ColumnPropNameInRow="path" msprop:Generator_ColumnPropNameInTable="pathColumn" msprop:Generator_UserColumnName="path">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="flags" msprop:Generator_ColumnVarNameInTable="columnflags" msprop:Generator_ColumnPropNameInRow="flags" msprop:Generator_ColumnPropNameInTable="flagsColumn" msprop:Generator_UserColumnName="flags" type="xs:long" />
              <xs:element name="uuid" msprop:Generator_ColumnVarNameInTable="columnuuid" msprop:Generator_ColumnPropNameInRow="uuid" msprop:Generator_ColumnPropNameInTable="uuidColumn" msprop:Generator_UserColumnName="uuid" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="has_cover" msprop:Generator_ColumnVarNameInTable="columnhas_cover" msprop:Generator_ColumnPropNameInRow="has_cover" msprop:Generator_ColumnPropNameInTable="has_coverColumn" msprop:Generator_UserColumnName="has_cover" type="xs:boolean" minOccurs="0" />
              <xs:element name="last_modified" msprop:Generator_ColumnVarNameInTable="columnlast_modified" msprop:Generator_ColumnPropNameInRow="last_modified" msprop:Generator_ColumnPropNameInTable="last_modifiedColumn" msprop:Generator_UserColumnName="last_modified" type="xs:dateTime" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="books_authors_link" msprop:Generator_TableClassName="books_authors_linkDataTable" msprop:Generator_TableVarName="tablebooks_authors_link" msprop:Generator_TablePropName="books_authors_link" msprop:Generator_RowDeletingName="books_authors_linkRowDeleting" msprop:Generator_RowChangingName="books_authors_linkRowChanging" msprop:Generator_RowEvHandlerName="books_authors_linkRowChangeEventHandler" msprop:Generator_RowDeletedName="books_authors_linkRowDeleted" msprop:Generator_UserTableName="books_authors_link" msprop:Generator_RowChangedName="books_authors_linkRowChanged" msprop:Generator_RowEvArgName="books_authors_linkRowChangeEvent" msprop:Generator_RowClassName="books_authors_linkRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:long" />
              <xs:element name="author" msprop:Generator_ColumnVarNameInTable="columnauthor" msprop:Generator_ColumnPropNameInRow="author" msprop:Generator_ColumnPropNameInTable="authorColumn" msprop:Generator_UserColumnName="author" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="books_languages_link" msprop:Generator_TableClassName="books_languages_linkDataTable" msprop:Generator_TableVarName="tablebooks_languages_link" msprop:Generator_TablePropName="books_languages_link" msprop:Generator_RowDeletingName="books_languages_linkRowDeleting" msprop:Generator_RowChangingName="books_languages_linkRowChanging" msprop:Generator_RowEvHandlerName="books_languages_linkRowChangeEventHandler" msprop:Generator_RowDeletedName="books_languages_linkRowDeleted" msprop:Generator_UserTableName="books_languages_link" msprop:Generator_RowChangedName="books_languages_linkRowChanged" msprop:Generator_RowEvArgName="books_languages_linkRowChangeEvent" msprop:Generator_RowClassName="books_languages_linkRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:long" />
              <xs:element name="lang_code" msprop:Generator_ColumnVarNameInTable="columnlang_code" msprop:Generator_ColumnPropNameInRow="lang_code" msprop:Generator_ColumnPropNameInTable="lang_codeColumn" msprop:Generator_UserColumnName="lang_code" type="xs:long" />
              <xs:element name="item_order" msprop:Generator_ColumnVarNameInTable="columnitem_order" msprop:Generator_ColumnPropNameInRow="item_order" msprop:Generator_ColumnPropNameInTable="item_orderColumn" msprop:Generator_UserColumnName="item_order" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="books_publishers_link" msprop:Generator_TableClassName="books_publishers_linkDataTable" msprop:Generator_TableVarName="tablebooks_publishers_link" msprop:Generator_TablePropName="books_publishers_link" msprop:Generator_RowDeletingName="books_publishers_linkRowDeleting" msprop:Generator_RowChangingName="books_publishers_linkRowChanging" msprop:Generator_RowEvHandlerName="books_publishers_linkRowChangeEventHandler" msprop:Generator_RowDeletedName="books_publishers_linkRowDeleted" msprop:Generator_UserTableName="books_publishers_link" msprop:Generator_RowChangedName="books_publishers_linkRowChanged" msprop:Generator_RowEvArgName="books_publishers_linkRowChangeEvent" msprop:Generator_RowClassName="books_publishers_linkRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:long" />
              <xs:element name="publisher" msprop:Generator_ColumnVarNameInTable="columnpublisher" msprop:Generator_ColumnPropNameInRow="publisher" msprop:Generator_ColumnPropNameInTable="publisherColumn" msprop:Generator_UserColumnName="publisher" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="books_ratings_link" msprop:Generator_TableClassName="books_ratings_linkDataTable" msprop:Generator_TableVarName="tablebooks_ratings_link" msprop:Generator_TablePropName="books_ratings_link" msprop:Generator_RowDeletingName="books_ratings_linkRowDeleting" msprop:Generator_RowChangingName="books_ratings_linkRowChanging" msprop:Generator_RowEvHandlerName="books_ratings_linkRowChangeEventHandler" msprop:Generator_RowDeletedName="books_ratings_linkRowDeleted" msprop:Generator_UserTableName="books_ratings_link" msprop:Generator_RowChangedName="books_ratings_linkRowChanged" msprop:Generator_RowEvArgName="books_ratings_linkRowChangeEvent" msprop:Generator_RowClassName="books_ratings_linkRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:long" />
              <xs:element name="rating" msprop:Generator_ColumnVarNameInTable="columnrating" msprop:Generator_ColumnPropNameInRow="rating" msprop:Generator_ColumnPropNameInTable="ratingColumn" msprop:Generator_UserColumnName="rating" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="books_series_link" msprop:Generator_TableClassName="books_series_linkDataTable" msprop:Generator_TableVarName="tablebooks_series_link" msprop:Generator_TablePropName="books_series_link" msprop:Generator_RowDeletingName="books_series_linkRowDeleting" msprop:Generator_RowChangingName="books_series_linkRowChanging" msprop:Generator_RowEvHandlerName="books_series_linkRowChangeEventHandler" msprop:Generator_RowDeletedName="books_series_linkRowDeleted" msprop:Generator_UserTableName="books_series_link" msprop:Generator_RowChangedName="books_series_linkRowChanged" msprop:Generator_RowEvArgName="books_series_linkRowChangeEvent" msprop:Generator_RowClassName="books_series_linkRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:long" />
              <xs:element name="series" msprop:Generator_ColumnVarNameInTable="columnseries" msprop:Generator_ColumnPropNameInRow="series" msprop:Generator_ColumnPropNameInTable="seriesColumn" msprop:Generator_UserColumnName="series" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="books_tags_link" msprop:Generator_TableClassName="books_tags_linkDataTable" msprop:Generator_TableVarName="tablebooks_tags_link" msprop:Generator_TablePropName="books_tags_link" msprop:Generator_RowDeletingName="books_tags_linkRowDeleting" msprop:Generator_RowChangingName="books_tags_linkRowChanging" msprop:Generator_RowEvHandlerName="books_tags_linkRowChangeEventHandler" msprop:Generator_RowDeletedName="books_tags_linkRowDeleted" msprop:Generator_UserTableName="books_tags_link" msprop:Generator_RowChangedName="books_tags_linkRowChanged" msprop:Generator_RowEvArgName="books_tags_linkRowChangeEvent" msprop:Generator_RowClassName="books_tags_linkRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:long" />
              <xs:element name="tag" msprop:Generator_ColumnVarNameInTable="columntag" msprop:Generator_ColumnPropNameInRow="tag" msprop:Generator_ColumnPropNameInTable="tagColumn" msprop:Generator_UserColumnName="tag" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="identifiers" msprop:Generator_TableClassName="identifiersDataTable" msprop:Generator_TableVarName="tableidentifiers" msprop:Generator_TablePropName="identifiers" msprop:Generator_RowDeletingName="identifiersRowDeleting" msprop:Generator_RowChangingName="identifiersRowChanging" msprop:Generator_RowEvHandlerName="identifiersRowChangeEventHandler" msprop:Generator_RowDeletedName="identifiersRowDeleted" msprop:Generator_UserTableName="identifiers" msprop:Generator_RowChangedName="identifiersRowChanged" msprop:Generator_RowEvArgName="identifiersRowChangeEvent" msprop:Generator_RowClassName="identifiersRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="book" msprop:Generator_ColumnVarNameInTable="columnbook" msprop:Generator_ColumnPropNameInRow="book" msprop:Generator_ColumnPropNameInTable="bookColumn" msprop:Generator_UserColumnName="book" type="xs:anyType" minOccurs="0" />
              <xs:element name="type" msprop:Generator_ColumnVarNameInTable="columntype" msprop:Generator_ColumnPropNameInRow="type" msprop:Generator_ColumnPropNameInTable="typeColumn" msprop:Generator_UserColumnName="type" type="xs:anyType" minOccurs="0" />
              <xs:element name="val" msprop:Generator_ColumnVarNameInTable="columnval" msprop:Generator_ColumnPropNameInRow="val" msprop:Generator_ColumnPropNameInTable="valColumn" msprop:Generator_UserColumnName="val" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="languages" msprop:Generator_TableClassName="languagesDataTable" msprop:Generator_TableVarName="tablelanguages" msprop:Generator_TablePropName="languages" msprop:Generator_RowDeletingName="languagesRowDeleting" msprop:Generator_RowChangingName="languagesRowChanging" msprop:Generator_RowEvHandlerName="languagesRowChangeEventHandler" msprop:Generator_RowDeletedName="languagesRowDeleted" msprop:Generator_UserTableName="languages" msprop:Generator_RowChangedName="languagesRowChanged" msprop:Generator_RowEvArgName="languagesRowChangeEvent" msprop:Generator_RowClassName="languagesRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="lang_code" msprop:Generator_ColumnVarNameInTable="columnlang_code" msprop:Generator_ColumnPropNameInRow="lang_code" msprop:Generator_ColumnPropNameInTable="lang_codeColumn" msprop:Generator_UserColumnName="lang_code" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="publishers" msprop:Generator_TableClassName="publishersDataTable" msprop:Generator_TableVarName="tablepublishers" msprop:Generator_TablePropName="publishers" msprop:Generator_RowDeletingName="publishersRowDeleting" msprop:Generator_RowChangingName="publishersRowChanging" msprop:Generator_RowEvHandlerName="publishersRowChangeEventHandler" msprop:Generator_RowDeletedName="publishersRowDeleted" msprop:Generator_UserTableName="publishers" msprop:Generator_RowChangedName="publishersRowChanged" msprop:Generator_RowEvArgName="publishersRowChangeEvent" msprop:Generator_RowClassName="publishersRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="sort" msprop:Generator_ColumnVarNameInTable="columnsort" msprop:Generator_ColumnPropNameInRow="sort" msprop:Generator_ColumnPropNameInTable="sortColumn" msprop:Generator_UserColumnName="sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ratings" msprop:Generator_TableClassName="ratingsDataTable" msprop:Generator_TableVarName="tableratings" msprop:Generator_TablePropName="ratings" msprop:Generator_RowDeletingName="ratingsRowDeleting" msprop:Generator_RowChangingName="ratingsRowChanging" msprop:Generator_RowEvHandlerName="ratingsRowChangeEventHandler" msprop:Generator_RowDeletedName="ratingsRowDeleted" msprop:Generator_UserTableName="ratings" msprop:Generator_RowChangedName="ratingsRowChanged" msprop:Generator_RowEvArgName="ratingsRowChangeEvent" msprop:Generator_RowClassName="ratingsRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="rating" msprop:Generator_ColumnVarNameInTable="columnrating" msprop:Generator_ColumnPropNameInRow="rating" msprop:Generator_ColumnPropNameInTable="ratingColumn" msprop:Generator_UserColumnName="rating" type="xs:long" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="series" msprop:Generator_TableClassName="seriesDataTable" msprop:Generator_TableVarName="tableseries" msprop:Generator_TablePropName="series" msprop:Generator_RowDeletingName="seriesRowDeleting" msprop:Generator_RowChangingName="seriesRowChanging" msprop:Generator_RowEvHandlerName="seriesRowChangeEventHandler" msprop:Generator_RowDeletedName="seriesRowDeleted" msprop:Generator_UserTableName="series" msprop:Generator_RowChangedName="seriesRowChanged" msprop:Generator_RowEvArgName="seriesRowChangeEvent" msprop:Generator_RowClassName="seriesRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="sort" msprop:Generator_ColumnVarNameInTable="columnsort" msprop:Generator_ColumnPropNameInRow="sort" msprop:Generator_ColumnPropNameInTable="sortColumn" msprop:Generator_UserColumnName="sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="tags" msprop:Generator_TableClassName="tagsDataTable" msprop:Generator_TableVarName="tabletags" msprop:Generator_TablePropName="tags" msprop:Generator_RowDeletingName="tagsRowDeleting" msprop:Generator_RowChangingName="tagsRowChanging" msprop:Generator_RowEvHandlerName="tagsRowChangeEventHandler" msprop:Generator_RowDeletedName="tagsRowDeleted" msprop:Generator_UserTableName="tags" msprop:Generator_RowChangedName="tagsRowChanged" msprop:Generator_RowEvArgName="tagsRowChangeEvent" msprop:Generator_RowClassName="tagsRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="authorsbybook" msprop:Generator_TableClassName="authorsbybookDataTable" msprop:Generator_TableVarName="tableauthorsbybook" msprop:Generator_RowChangedName="authorsbybookRowChanged" msprop:Generator_TablePropName="authorsbybook" msprop:Generator_RowDeletingName="authorsbybookRowDeleting" msprop:Generator_RowChangingName="authorsbybookRowChanging" msprop:Generator_RowEvHandlerName="authorsbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="authorsbybookRowDeleted" msprop:Generator_RowClassName="authorsbybookRow" msprop:Generator_UserTableName="authorsbybook" msprop:Generator_RowEvArgName="authorsbybookRowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="commentsbybook" msprop:Generator_TableClassName="commentsbybookDataTable" msprop:Generator_TableVarName="tablecommentsbybook" msprop:Generator_RowChangedName="commentsbybookRowChanged" msprop:Generator_TablePropName="commentsbybook" msprop:Generator_RowDeletingName="commentsbybookRowDeleting" msprop:Generator_RowChangingName="commentsbybookRowChanging" msprop:Generator_RowEvHandlerName="commentsbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="commentsbybookRowDeleted" msprop:Generator_RowClassName="commentsbybookRow" msprop:Generator_UserTableName="commentsbybook" msprop:Generator_RowEvArgName="commentsbybookRowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="text" msprop:Generator_ColumnVarNameInTable="columntext" msprop:Generator_ColumnPropNameInRow="text" msprop:Generator_ColumnPropNameInTable="textColumn" msprop:Generator_UserColumnName="text" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="seriesbybook" msprop:Generator_TableClassName="seriesbybookDataTable" msprop:Generator_TableVarName="tableseriesbybook" msprop:Generator_TablePropName="seriesbybook" msprop:Generator_RowDeletingName="seriesbybookRowDeleting" msprop:Generator_RowChangingName="seriesbybookRowChanging" msprop:Generator_RowEvHandlerName="seriesbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="seriesbybookRowDeleted" msprop:Generator_UserTableName="seriesbybook" msprop:Generator_RowChangedName="seriesbybookRowChanged" msprop:Generator_RowEvArgName="seriesbybookRowChangeEvent" msprop:Generator_RowClassName="seriesbybookRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="tagsbybook" msprop:Generator_TableClassName="tagsbybookDataTable" msprop:Generator_TableVarName="tabletagsbybook" msprop:Generator_TablePropName="tagsbybook" msprop:Generator_RowDeletingName="tagsbybookRowDeleting" msprop:Generator_RowChangingName="tagsbybookRowChanging" msprop:Generator_RowEvHandlerName="tagsbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="tagsbybookRowDeleted" msprop:Generator_UserTableName="tagsbybook" msprop:Generator_RowChangedName="tagsbybookRowChanged" msprop:Generator_RowEvArgName="tagsbybookRowChangeEvent" msprop:Generator_RowClassName="tagsbybookRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ratingsbybook" msprop:Generator_TableClassName="ratingsbybookDataTable" msprop:Generator_TableVarName="tableratingsbybook" msprop:Generator_TablePropName="ratingsbybook" msprop:Generator_RowDeletingName="ratingsbybookRowDeleting" msprop:Generator_RowChangingName="ratingsbybookRowChanging" msprop:Generator_RowEvHandlerName="ratingsbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="ratingsbybookRowDeleted" msprop:Generator_UserTableName="ratingsbybook" msprop:Generator_RowChangedName="ratingsbybookRowChanged" msprop:Generator_RowEvArgName="ratingsbybookRowChangeEvent" msprop:Generator_RowClassName="ratingsbybookRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="rating" msprop:Generator_ColumnVarNameInTable="columnrating" msprop:Generator_ColumnPropNameInRow="rating" msprop:Generator_ColumnPropNameInTable="ratingColumn" msprop:Generator_UserColumnName="rating" type="xs:long" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="formatsbybook" msprop:Generator_TableClassName="formatsbybookDataTable" msprop:Generator_TableVarName="tableformatsbybook" msprop:Generator_TablePropName="formatsbybook" msprop:Generator_RowDeletingName="formatsbybookRowDeleting" msprop:Generator_RowChangingName="formatsbybookRowChanging" msprop:Generator_RowEvHandlerName="formatsbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="formatsbybookRowDeleted" msprop:Generator_UserTableName="formatsbybook" msprop:Generator_RowChangedName="formatsbybookRowChanged" msprop:Generator_RowEvArgName="formatsbybookRowChangeEvent" msprop:Generator_RowClassName="formatsbybookRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="format" msprop:Generator_ColumnVarNameInTable="columnformat" msprop:Generator_ColumnPropNameInRow="format" msprop:Generator_ColumnPropNameInTable="formatColumn" msprop:Generator_UserColumnName="format" type="xs:anyType" minOccurs="0" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="CountBooksByTagid" msprop:Generator_TableClassName="CountBooksByTagidDataTable" msprop:Generator_TableVarName="tableCountBooksByTagid" msprop:Generator_RowChangedName="CountBooksByTagidRowChanged" msprop:Generator_TablePropName="CountBooksByTagid" msprop:Generator_RowDeletingName="CountBooksByTagidRowDeleting" msprop:Generator_RowChangingName="CountBooksByTagidRowChanging" msprop:Generator_RowEvHandlerName="CountBooksByTagidRowChangeEventHandler" msprop:Generator_RowDeletedName="CountBooksByTagidRowDeleted" msprop:Generator_RowClassName="CountBooksByTagidRow" msprop:Generator_UserTableName="CountBooksByTagid" msprop:Generator_RowEvArgName="CountBooksByTagidRowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Expr1" msprop:Generator_ColumnVarNameInTable="columnExpr1" msprop:Generator_ColumnPropNameInRow="Expr1" msprop:Generator_ColumnPropNameInTable="Expr1Column" msprop:Generator_UserColumnName="Expr1" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="GetTagNameById" msprop:Generator_TableClassName="GetTagNameByIdDataTable" msprop:Generator_TableVarName="tableGetTagNameById" msprop:Generator_RowChangedName="GetTagNameByIdRowChanged" msprop:Generator_TablePropName="GetTagNameById" msprop:Generator_RowDeletingName="GetTagNameByIdRowDeleting" msprop:Generator_RowChangingName="GetTagNameByIdRowChanging" msprop:Generator_RowEvHandlerName="GetTagNameByIdRowChangeEventHandler" msprop:Generator_RowDeletedName="GetTagNameByIdRowDeleted" msprop:Generator_RowClassName="GetTagNameByIdRow" msprop:Generator_UserTableName="GetTagNameById" msprop:Generator_RowEvArgName="GetTagNameByIdRowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="GetTagIdByTagName" msprop:Generator_TableClassName="GetTagIdByTagNameDataTable" msprop:Generator_TableVarName="tableGetTagIdByTagName" msprop:Generator_RowChangedName="GetTagIdByTagNameRowChanged" msprop:Generator_TablePropName="GetTagIdByTagName" msprop:Generator_RowDeletingName="GetTagIdByTagNameRowDeleting" msprop:Generator_RowChangingName="GetTagIdByTagNameRowChanging" msprop:Generator_RowEvHandlerName="GetTagIdByTagNameRowChangeEventHandler" msprop:Generator_RowDeletedName="GetTagIdByTagNameRowDeleted" msprop:Generator_RowClassName="GetTagIdByTagNameRow" msprop:Generator_UserTableName="GetTagIdByTagName" msprop:Generator_RowEvArgName="GetTagIdByTagNameRowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="GetBooksByLangCode" msprop:Generator_TableClassName="GetBooksByLangCodeDataTable" msprop:Generator_TableVarName="tableGetBooksByLangCode" msprop:Generator_TablePropName="GetBooksByLangCode" msprop:Generator_RowDeletingName="GetBooksByLangCodeRowDeleting" msprop:Generator_RowChangingName="GetBooksByLangCodeRowChanging" msprop:Generator_RowEvHandlerName="GetBooksByLangCodeRowChangeEventHandler" msprop:Generator_RowDeletedName="GetBooksByLangCodeRowDeleted" msprop:Generator_UserTableName="GetBooksByLangCode" msprop:Generator_RowChangedName="GetBooksByLangCodeRowChanged" msprop:Generator_RowEvArgName="GetBooksByLangCodeRowChangeEvent" msprop:Generator_RowClassName="GetBooksByLangCodeRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="CountBooksByRating" msprop:Generator_TableClassName="CountBooksByRatingDataTable" msprop:Generator_TableVarName="tableCountBooksByRating" msprop:Generator_TablePropName="CountBooksByRating" msprop:Generator_RowDeletingName="CountBooksByRatingRowDeleting" msprop:Generator_RowChangingName="CountBooksByRatingRowChanging" msprop:Generator_RowEvHandlerName="CountBooksByRatingRowChangeEventHandler" msprop:Generator_RowDeletedName="CountBooksByRatingRowDeleted" msprop:Generator_UserTableName="CountBooksByRating" msprop:Generator_RowChangedName="CountBooksByRatingRowChanged" msprop:Generator_RowEvArgName="CountBooksByRatingRowChangeEvent" msprop:Generator_RowClassName="CountBooksByRatingRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Expr1" msprop:Generator_ColumnVarNameInTable="columnExpr1" msprop:Generator_ColumnPropNameInRow="Expr1" msprop:Generator_ColumnPropNameInTable="Expr1Column" msprop:Generator_UserColumnName="Expr1" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="tags1" msprop:Generator_TableClassName="tags1DataTable" msprop:Generator_TableVarName="tabletags1" msprop:Generator_TablePropName="tags1" msprop:Generator_RowDeletingName="tags1RowDeleting" msprop:Generator_RowChangingName="tags1RowChanging" msprop:Generator_RowEvHandlerName="tags1RowChangeEventHandler" msprop:Generator_RowDeletedName="tags1RowDeleted" msprop:Generator_UserTableName="tags1" msprop:Generator_RowChangedName="tags1RowChanged" msprop:Generator_RowEvArgName="tags1RowChangeEvent" msprop:Generator_RowClassName="tags1Row">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Details" msprop:Generator_TableClassName="DetailsDataTable" msprop:Generator_TableVarName="tableDetails" msprop:Generator_TablePropName="Details" msprop:Generator_RowDeletingName="DetailsRowDeleting" msprop:Generator_RowChangingName="DetailsRowChanging" msprop:Generator_RowEvHandlerName="DetailsRowChangeEventHandler" msprop:Generator_RowDeletedName="DetailsRowDeleted" msprop:Generator_UserTableName="Details" msprop:Generator_RowChangedName="DetailsRowChanged" msprop:Generator_RowEvArgName="DetailsRowChangeEvent" msprop:Generator_RowClassName="DetailsRow">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="author_sort" msprop:Generator_ColumnVarNameInTable="columnauthor_sort" msprop:Generator_ColumnPropNameInRow="author_sort" msprop:Generator_ColumnPropNameInTable="author_sortColumn" msprop:Generator_UserColumnName="author_sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="has_cover" msprop:Generator_ColumnVarNameInTable="columnhas_cover" msprop:Generator_ColumnPropNameInRow="has_cover" msprop:Generator_ColumnPropNameInTable="has_coverColumn" msprop:Generator_UserColumnName="has_cover" type="xs:boolean" minOccurs="0" />
              <xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="pubdate" msprop:Generator_ColumnVarNameInTable="columnpubdate" msprop:Generator_ColumnPropNameInRow="pubdate" msprop:Generator_ColumnPropNameInTable="pubdateColumn" msprop:Generator_UserColumnName="pubdate" type="xs:dateTime" minOccurs="0" />
              <xs:element name="format" msprop:Generator_ColumnVarNameInTable="columnformat" msprop:Generator_ColumnPropNameInRow="format" msprop:Generator_ColumnPropNameInTable="formatColumn" msprop:Generator_UserColumnName="format" type="xs:anyType" minOccurs="0" />
              <xs:element name="type" msprop:Generator_ColumnVarNameInTable="columntype" msprop:Generator_ColumnPropNameInRow="type" msprop:Generator_ColumnPropNameInTable="typeColumn" msprop:Generator_UserColumnName="type" type="xs:anyType" minOccurs="0" />
              <xs:element name="val" msprop:Generator_ColumnVarNameInTable="columnval" msprop:Generator_ColumnPropNameInRow="val" msprop:Generator_ColumnPropNameInTable="valColumn" msprop:Generator_UserColumnName="val" type="xs:anyType" minOccurs="0" />
              <xs:element name="lang_code" msprop:Generator_ColumnVarNameInTable="columnlang_code" msprop:Generator_ColumnPropNameInRow="lang_code" msprop:Generator_ColumnPropNameInTable="lang_codeColumn" msprop:Generator_UserColumnName="lang_code" type="xs:anyType" minOccurs="0" />
              <xs:element name="last_modified" msprop:Generator_ColumnVarNameInTable="columnlast_modified" msprop:Generator_ColumnPropNameInRow="last_modified" msprop:Generator_ColumnPropNameInTable="last_modifiedColumn" msprop:Generator_UserColumnName="last_modified" type="xs:dateTime" />
              <xs:element name="timestamp" msprop:Generator_ColumnVarNameInTable="columntimestamp" msprop:Generator_ColumnPropNameInRow="timestamp" msprop:Generator_ColumnPropNameInTable="timestampColumn" msprop:Generator_UserColumnName="timestamp" type="xs:dateTime" minOccurs="0" />
              <xs:element name="publisher" msprop:Generator_ColumnVarNameInTable="columnpublisher" msprop:Generator_ColumnPropNameInRow="publisher" msprop:Generator_ColumnPropNameInTable="publisherColumn" msprop:Generator_UserColumnName="publisher">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Details1" msprop:Generator_TableClassName="Details1DataTable" msprop:Generator_TableVarName="tableDetails1" msprop:Generator_TablePropName="Details1" msprop:Generator_RowDeletingName="Details1RowDeleting" msprop:Generator_RowChangingName="Details1RowChanging" msprop:Generator_RowEvHandlerName="Details1RowChangeEventHandler" msprop:Generator_RowDeletedName="Details1RowDeleted" msprop:Generator_UserTableName="Details1" msprop:Generator_RowChangedName="Details1RowChanged" msprop:Generator_RowEvArgName="Details1RowChangeEvent" msprop:Generator_RowClassName="Details1Row">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="author_sort" msprop:Generator_ColumnVarNameInTable="columnauthor_sort" msprop:Generator_ColumnPropNameInRow="author_sort" msprop:Generator_ColumnPropNameInTable="author_sortColumn" msprop:Generator_UserColumnName="author_sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="has_cover" msprop:Generator_ColumnVarNameInTable="columnhas_cover" msprop:Generator_ColumnPropNameInRow="has_cover" msprop:Generator_ColumnPropNameInTable="has_coverColumn" msprop:Generator_UserColumnName="has_cover" type="xs:boolean" minOccurs="0" />
              <xs:element name="pubdate" msprop:Generator_ColumnVarNameInTable="columnpubdate" msprop:Generator_ColumnPropNameInRow="pubdate" msprop:Generator_ColumnPropNameInTable="pubdateColumn" msprop:Generator_UserColumnName="pubdate" type="xs:dateTime" minOccurs="0" />
              <xs:element name="lang_code" msprop:Generator_ColumnVarNameInTable="columnlang_code" msprop:Generator_ColumnPropNameInRow="lang_code" msprop:Generator_ColumnPropNameInTable="lang_codeColumn" msprop:Generator_UserColumnName="lang_code" type="xs:anyType" minOccurs="0" />
              <xs:element name="last_modified" msprop:Generator_ColumnVarNameInTable="columnlast_modified" msprop:Generator_ColumnPropNameInRow="last_modified" msprop:Generator_ColumnPropNameInTable="last_modifiedColumn" msprop:Generator_UserColumnName="last_modified" type="xs:dateTime" />
              <xs:element name="publisher" msprop:Generator_ColumnVarNameInTable="columnpublisher" msprop:Generator_ColumnPropNameInRow="publisher" msprop:Generator_ColumnPropNameInTable="publisherColumn" msprop:Generator_UserColumnName="publisher">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TitleDate" msprop:Generator_ColumnVarNameInTable="columnTitleDate" msprop:Generator_ColumnPropNameInRow="TitleDate" msprop:Generator_ColumnPropNameInTable="TitleDateColumn" msprop:Generator_UserColumnName="TitleDate" type="xs:dateTime" minOccurs="0" />
              <xs:element name="series_index" msprop:Generator_ColumnVarNameInTable="columnseries_index" msprop:Generator_ColumnPropNameInRow="series_index" msprop:Generator_ColumnPropNameInTable="series_indexColumn" msprop:Generator_UserColumnName="series_index" type="xs:double" />
              <xs:element name="series" msprop:Generator_ColumnVarNameInTable="columnseries" msprop:Generator_ColumnPropNameInRow="series" msprop:Generator_ColumnPropNameInTable="seriesColumn" msprop:Generator_UserColumnName="series">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="rating" msprop:Generator_ColumnVarNameInTable="columnrating" msprop:Generator_ColumnPropNameInRow="rating" msprop:Generator_ColumnPropNameInTable="ratingColumn" msprop:Generator_UserColumnName="rating" type="xs:anyType" minOccurs="0" />
              <xs:element name="comments" msprop:Generator_ColumnVarNameInTable="columncomments" msprop:Generator_ColumnPropNameInRow="comments" msprop:Generator_ColumnPropNameInTable="commentsColumn" msprop:Generator_UserColumnName="comments" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="DataTable1" msprop:Generator_TableClassName="DataTable1DataTable" msprop:Generator_TableVarName="tableDataTable1" msprop:Generator_RowChangedName="DataTable1RowChanged" msprop:Generator_TablePropName="DataTable1" msprop:Generator_RowDeletingName="DataTable1RowDeleting" msprop:Generator_RowChangingName="DataTable1RowChanging" msprop:Generator_RowEvHandlerName="DataTable1RowChangeEventHandler" msprop:Generator_RowDeletedName="DataTable1RowDeleted" msprop:Generator_RowClassName="DataTable1Row" msprop:Generator_UserTableName="DataTable1" msprop:Generator_RowEvArgName="DataTable1RowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnid" msprop:Generator_ColumnPropNameInRow="id" msprop:Generator_ColumnPropNameInTable="idColumn" msprop:Generator_UserColumnName="id" type="xs:long" />
              <xs:element name="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="author_sort" msprop:Generator_ColumnVarNameInTable="columnauthor_sort" msprop:Generator_ColumnPropNameInRow="author_sort" msprop:Generator_ColumnPropNameInTable="author_sortColumn" msprop:Generator_UserColumnName="author_sort" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="titledate" msprop:Generator_ColumnVarNameInTable="columntitledate" msprop:Generator_ColumnPropNameInRow="titledate" msprop:Generator_ColumnPropNameInTable="titledateColumn" msprop:Generator_UserColumnName="titledate" type="xs:dateTime" minOccurs="0" />
              <xs:element name="pubdate" msprop:Generator_ColumnVarNameInTable="columnpubdate" msprop:Generator_ColumnPropNameInRow="pubdate" msprop:Generator_ColumnPropNameInTable="pubdateColumn" msprop:Generator_UserColumnName="pubdate" type="xs:dateTime" minOccurs="0" />
              <xs:element name="last_modified" msprop:Generator_ColumnVarNameInTable="columnlast_modified" msprop:Generator_ColumnPropNameInRow="last_modified" msprop:Generator_ColumnPropNameInTable="last_modifiedColumn" msprop:Generator_UserColumnName="last_modified" type="xs:dateTime" />
              <xs:element name="series_index" msprop:Generator_ColumnVarNameInTable="columnseries_index" msprop:Generator_ColumnPropNameInRow="series_index" msprop:Generator_ColumnPropNameInTable="series_indexColumn" msprop:Generator_UserColumnName="series_index" type="xs:double" />
              <xs:element name="has_cover" msprop:Generator_ColumnVarNameInTable="columnhas_cover" msprop:Generator_ColumnPropNameInRow="has_cover" msprop:Generator_ColumnPropNameInTable="has_coverColumn" msprop:Generator_UserColumnName="has_cover" type="xs:boolean" minOccurs="0" />
              <xs:element name="lang_code" msprop:Generator_ColumnVarNameInTable="columnlang_code" msprop:Generator_ColumnPropNameInRow="lang_code" msprop:Generator_ColumnPropNameInTable="lang_codeColumn" msprop:Generator_UserColumnName="lang_code" type="xs:anyType" minOccurs="0" />
              <xs:element name="publisher" msprop:Generator_ColumnVarNameInTable="columnpublisher" msprop:Generator_ColumnPropNameInRow="publisher" msprop:Generator_ColumnPropNameInTable="publisherColumn" msprop:Generator_UserColumnName="publisher">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="2147483647" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="rating" msprop:Generator_ColumnVarNameInTable="columnrating" msprop:Generator_ColumnPropNameInRow="rating" msprop:Generator_ColumnPropNameInTable="ratingColumn" msprop:Generator_UserColumnName="rating" type="xs:anyType" minOccurs="0" />
              <xs:element name="comments" msprop:Generator_ColumnVarNameInTable="columncomments" msprop:Generator_ColumnPropNameInRow="comments" msprop:Generator_ColumnPropNameInTable="commentsColumn" msprop:Generator_UserColumnName="comments" type="xs:anyType" minOccurs="0" />
              <xs:element name="series" msprop:Generator_ColumnVarNameInTable="columnseries" msprop:Generator_ColumnPropNameInRow="series" msprop:Generator_ColumnPropNameInTable="seriesColumn" msprop:Generator_UserColumnName="series" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="idsbybook" msprop:Generator_TableClassName="idsbybookDataTable" msprop:Generator_TableVarName="tableidsbybook" msprop:Generator_RowChangedName="idsbybookRowChanged" msprop:Generator_TablePropName="idsbybook" msprop:Generator_RowDeletingName="idsbybookRowDeleting" msprop:Generator_RowChangingName="idsbybookRowChanging" msprop:Generator_RowEvHandlerName="idsbybookRowChangeEventHandler" msprop:Generator_RowDeletedName="idsbybookRowDeleted" msprop:Generator_RowClassName="idsbybookRow" msprop:Generator_UserTableName="idsbybook" msprop:Generator_RowEvArgName="idsbybookRowChangeEvent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="type" msprop:Generator_ColumnVarNameInTable="columntype" msprop:Generator_ColumnPropNameInRow="type" msprop:Generator_ColumnPropNameInTable="typeColumn" msprop:Generator_UserColumnName="type" type="xs:anyType" minOccurs="0" />
              <xs:element name="val" msprop:Generator_ColumnVarNameInTable="columnval" msprop:Generator_ColumnPropNameInRow="val" msprop:Generator_ColumnPropNameInTable="valColumn" msprop:Generator_UserColumnName="val" type="xs:anyType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="books_authors_link_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books_authors_link" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="books_languages_link_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books_languages_link" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="books_publishers_link_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:books_publishers_link" />
      <xs:field xpath="mstns:book" />
    </xs:unique>
    <xs:unique name="Constraint2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books_publishers_link" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="books_ratings_link_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books_ratings_link" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="books_series_link_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:books_series_link" />
      <xs:field xpath="mstns:book" />
    </xs:unique>
    <xs:unique name="books_series_link_Constraint2" msdata:ConstraintName="Constraint2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books_series_link" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="books_tags_link_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:books_tags_link" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="identifiers_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:identifiers" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="languages_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:languages" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="publishers_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:publishers" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="publishers_Constraint2" msdata:ConstraintName="Constraint2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:publishers" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="ratings_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:ratings" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="series_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:series" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="series_Constraint2" msdata:ConstraintName="Constraint2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:series" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="tags_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:tags" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="tags_Constraint2" msdata:ConstraintName="Constraint2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:tags" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="authorsbybook_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:authorsbybook" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="authorsbybook_Constraint2" msdata:ConstraintName="Constraint2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:authorsbybook" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="seriesbybook_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:seriesbybook" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="seriesbybook_Constraint2" msdata:ConstraintName="Constraint2">
      <xs:selector xpath=".//mstns:seriesbybook" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="tagsbybook_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:tagsbybook" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="tagsbybook_Constraint2" msdata:ConstraintName="Constraint2">
      <xs:selector xpath=".//mstns:tagsbybook" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="GetTagNameById_Constraint1" msdata:ConstraintName="Constraint1">
      <xs:selector xpath=".//mstns:GetTagNameById" />
      <xs:field xpath="mstns:name" />
    </xs:unique>
    <xs:unique name="GetTagIdByTagName_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:GetTagIdByTagName" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="GetBooksByLangCode_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:GetBooksByLangCode" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="tags1_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:tags1" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="Details_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Details" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="Details1_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Details1" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
    <xs:unique name="DataTable1_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:DataTable1" />
      <xs:field xpath="mstns:id" />
    </xs:unique>
  </xs:element>
  <xs:annotation>
    <xs:appinfo>
      <msdata:Relationship name="books_books_ratings_link" msdata:parent="books" msdata:child="books_ratings_link" msdata:parentkey="id" msdata:childkey="book" msprop:Generator_UserChildTable="books_ratings_link" msprop:Generator_ChildPropName="Getbooks_ratings_linkRows" msprop:Generator_UserRelationName="books_books_ratings_link" msprop:Generator_ParentPropName="booksRow" msprop:Generator_RelationVarName="relationbooks_books_ratings_link" msprop:Generator_UserParentTable="books" />
      <msdata:Relationship name="ratings_books_ratings_link" msdata:parent="ratings" msdata:child="books_ratings_link" msdata:parentkey="rating" msdata:childkey="rating" msprop:Generator_UserChildTable="books_ratings_link" msprop:Generator_ChildPropName="Getbooks_ratings_linkRows" msprop:Generator_UserRelationName="ratings_books_ratings_link" msprop:Generator_RelationVarName="relationratings_books_ratings_link" msprop:Generator_UserParentTable="ratings" msprop:Generator_ParentPropName="ratingsRow" />
    </xs:appinfo>
  </xs:annotation>
</xs:schema>